package io.mqttpush.mqttclient.service;

import io.mqttpush.common.events.MsgEvent;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.mqtt.MqttPublishMessage;

import java.util.function.Consumer;

/**
 * 
 * @author acer
 *
 */
public interface MessageListener {

	/**
	 * 接收到消息处
	 * @param mqttPublishMessage
	 */
	void onRecivMessage(MqttPublishMessage mqttPublishMessage);

	/**
	 *
	 * 添加topic消息回调
	 * 当这个topic收到消息的时候就会执行consumer
	 * @param topic
	 */
	void addMessageProcesser(String topic, Consumer<ByteBuf> consumer);


	/**
	 *
	 * 添加topic事件回调
	 * 当这个topic收到消息的时候就会执行consumer
	 * @param topic
	 * @param consumer
	 */
	void addEventProcesser(String topic, Consumer<MsgEvent> consumer);
}
